﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

using WindowsFormsApplication4;

namespace ProyectoFinal
{
    public partial class Form7 : Form
    {
        string rutaIsotoposSQL = "Data Source=localhost;Initial Catalog=Isotopos;Integrated Security=True";
        DataSet dsIsotopos;
        bool flag_carga = false;

        public Form7()
        {
            InitializeComponent();
        }

        private void Form7_Load(object sender, EventArgs e)
        {
            llenar_lbProveedores();
            flag_carga = true;
            lbProveedores.SelectedIndex = 1;
            lbProveedores.SelectedIndex = 0;
        }

        private void llenar_lbProveedores()
        {
            string ConsultaSQLNombreCompañía = "Select IdProveedor, NombreCompañía FROM Proveedores order by NombreCompañía";
            dsIsotopos = new DataSet();

            AgregarTablaDataSetSQLServer(rutaIsotoposSQL, ConsultaSQLNombreCompañía, "Proveedores", ref dsIsotopos);

            lbProveedores.DataSource = dsIsotopos.Tables[0].DefaultView;
            lbProveedores.ValueMember = "IdProveedor";
            lbProveedores.DisplayMember = "NombreCompañía";
        }

        private void AgregarTablaDataSetSQLServer(string ConexionBD, string ConsultaSQL,
                                  string NombreTabla, ref DataSet ds)
        {
            SqlConnection cn = new SqlConnection(ConexionBD);
            SqlDataAdapter adaptador = new SqlDataAdapter(ConsultaSQL, cn);
            cn.Open();
            adaptador.Fill(ds, NombreTabla);
        }

        private void btnBorrarCampos_Click(object sender, EventArgs e)
        {
            txtNombreCompañia.Clear();
            txtContacto.Clear();
            txtCiudad.Clear();
            txtPais.Clear();
            txtTelefono.Clear();
        }

        private int maxIdProveedor()
        {
            string QuerySQL = "Select (Max(IdProveedor)+1) as Last from Proveedores";
            SqlConnection con = new SqlConnection(rutaIsotoposSQL);
            SqlCommand cmd = new SqlCommand(QuerySQL);
            DataTable tabla = new DataTable();
            SqlDataAdapter AdaptadorTabla = new SqlDataAdapter(QuerySQL, con);
            AdaptadorTabla.Fill(tabla);// Llenamos la tabla con los datos leídos        
            int max =Convert.ToInt32(tabla.Rows[0]["Last"].ToString());

            return max;
        }

        Datos obDatos = new Datos();

        private void btnAñadirProveedor_Click(object sender, EventArgs e)
        {
            int max = maxIdProveedor();

            string sql = "insert into Proveedores (IdProveedor, NombreCompañía, NombreContacto, Ciudad, País, Teléfono) values ('"
                         + max + "','" + this.txtNombreCompañia.Text + "','" + this.txtContacto.Text + "','" + this.txtCiudad.Text + "','" 
                         + this.txtPais.Text + "','" + this.txtTelefono.Text + "')";

            if (obDatos.Insertar(sql))
            {
                MessageBox.Show("Proveedor Añadido");
            }
            else
            {
                MessageBox.Show("Error al Añadir");
            }
        }

        private void btnActualizarProveedor_Click(object sender, EventArgs e)
        {
            string campos = "IdProveedor='" + lbProveedores.SelectedValue.ToString() + "', NombreCompañía='" + this.txtNombreCompañia.Text + "', NombreContacto='" + txtContacto.Text +
                            "', Ciudad='" + this.txtCiudad.Text + "', País='" + this.txtPais.Text + "', Teléfono='" + this.txtTelefono.Text + "'";
            if (obDatos.Actualizar("Proveedores", campos, "IdProveedor='" + lbProveedores.SelectedValue.ToString() + "'"))
            {
                MessageBox.Show("Proveedor Actualizado");
            }
            else
            {
                MessageBox.Show("Error al Actualizar");
            }
        }

        private void btnEliminarProveedor_Click(object sender, EventArgs e)
        {
            if (obDatos.Eliminar("Proveedores", "IdProveedor='" + lbProveedores.SelectedValue.ToString() + "'"))
            {
                MessageBox.Show("Proveedor Eliminado");
            }
            else
            {
                MessageBox.Show("Error al Eliminar");
            }
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnTablaProveedores_Click(object sender, EventArgs e)
        {
            Form71 abrirformulario = new Form71();
            abrirformulario.ShowDialog();
        }

        private void lbProveedores_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                if ((lbProveedores.SelectedIndex < 0))
                {
                    return;
                }

                txtNombreCompañia.Text = lbProveedores.Text;
                string a = lbProveedores.SelectedValue.ToString();
                if (a.Length != 23)
                {
                    cargar_datos(a);
                }
            }
            catch (Exception)
            {
                return;
            }
        }

        private void cargar_datos(string cat)
        {
            if (!flag_carga) return;
            string ConsultaSQL = "Select * FROM Proveedores where IdProveedor = " + cat +"";

            SqlConnection Isotopos = new SqlConnection(rutaIsotoposSQL);
            Isotopos.Open();
            string StrComando = ConsultaSQL;
            SqlCommand COMAND = new SqlCommand(StrComando, Isotopos);
            DataTable tabla = new DataTable();
            SqlDataAdapter AdaptadorTabla = new SqlDataAdapter(StrComando, Isotopos);

            AdaptadorTabla.Fill(tabla);

            string NombreCompañia = tabla.Rows[0]["NombreCompañía"].ToString();
            string NombreContacto = tabla.Rows[0]["NombreContacto"].ToString();
            string Ciudad = tabla.Rows[0]["Ciudad"].ToString();
            string Pais = tabla.Rows[0]["País"].ToString();
            string Telefono = tabla.Rows[0]["Teléfono"].ToString();

            txtNombreCompañia.Text = NombreCompañia;
            txtContacto.Text = NombreContacto;
            txtCiudad.Text = Ciudad;
            txtPais.Text = Pais;
            txtTelefono.Text = Telefono;
        }
    }
}
